﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using COM.Rights.Model;
using COM.Rights.BLL;
using System.Data;
using COM.PreAlarm.Model;
using COM.PreAlarm.BLL;
using System.Web.UI.WebControls;

public partial class Pages_ProductTotal_SendMore : AnalyticsListBase
{  
	#region 重写方法

    
     protected string _FusionCartXML = "";

    protected override void OnLoad()
    {
        
        if (!IsPostBack) {
          
            //初始化市
            MdlistInfo _MdlistInfo = new MdlistInfo();
            _MdlistInfo.TranType = "GetCityByUser";
            _MdlistInfo.UID = ZASession.Account;

            DataTable dt = Mdlist.GetDataTableByModel(_MdlistInfo);
            if (dt != null)
            {
                if (dt.Rows.Count == 1)
                {
                    //一条记录默认选中
                    ZABinder.FillList(StringHelper.FormatObjToString(dt.Rows[0]["Name"]), ddlCity, false, dt);
                    //填充区
                    _MdlistInfo.TranType = "GetDistrictByUser";
                    _MdlistInfo.UID = ZASession.Account;
                    _MdlistInfo.Type = ddlCity.SelectedValue;
                    DataTable dtDistrict = Mdlist.GetDataTableByModel(_MdlistInfo);
                    //一条记录默认选中
                    if (dtDistrict != null && dtDistrict.Rows.Count == 1)
                    {
                        ZABinder.FillList(StringHelper.FormatObjToString(dtDistrict.Rows[0]["name"]), ddlDistrict, false, dtDistrict);
                    }
                    else
                    {
                        ZABinder.FillList(string.Empty, ddlDistrict, true, dtDistrict);
                    }

                }
                else
                {
                    ZABinder.FillList(string.Empty, ddlCity, true, dt);
                    ddlDistrict.Items.Add(new ListItem("--请选择--", ""));
                }

            }
            else
            {
                //没有市的权限，显示所管控的所有区
                ZABinder.FillList(string.Empty, ddlCity, true, dt);
                ddlDistrict.Items.Add(new ListItem("--请选择--", ""));
            }
        }

    
        base.OnLoad();
    }


    protected override int PageSize
    {
        get
        {
            return 10000;
        }
    }


    protected override void OnGridDataBind()
    {
        BdOrder _BdOrder = new BdOrder();
        List<DBParameter> _listDBParameter = new List<DBParameter>();
        _listDBParameter.Add(new DBParameter("@TranType", "SendMore"));
        //listDBParameter.Add(new DBParameter("@OrderDateBegin", fromData.Text));
        //_listDBParameter.Add(new DBParameter("@OrderDateEnd", toData.Text));
        _listDBParameter.Add(new DBParameter("@UID", ZASession.Account));
        _listDBParameter.Add(new DBParameter("@City", ddlCity.SelectedValue));
        _listDBParameter.Add(new DBParameter("@District", ddlDistrict.SelectedValue));
       // _listDBParameter.Add(new DBParameter("@Equip_NO", Equip_No.Text));
       // _listDBParameter.Add(new DBParameter("@AvgTotalBegin", StringHelper.FormatObjStringToint(txtAvgBegin.Text)));
       // _listDBParameter.Add(new DBParameter("@AvgTotalEnd", StringHelper.FormatObjStringToint(txtAvgEnd.Text)));

        IDataReader sdr = _BdOrder.ExecuteReader("[dbo].[report]", _listDBParameter, System.Data.CommandType.StoredProcedure);
  

        DataTable dt = new DataTable();
        dt.Load(sdr);
        dt.Columns.Add("CurrentStatus");
        string TargetDate = DateTime.Now.Hour.ToString().Length < 2 ? '0' + DateTime.Now.Hour.ToString() : DateTime.Now.Hour.ToString();
        foreach (DataRow dr in dt.Rows)
        {
            dr["CurrentStatus"] = StringHelper.FormatObjStringToint(dr["online_" + TargetDate]) == 1 ? "在线" : "离线";
        }

        DataView  dv = dt.DefaultView;

        if( ddlMsgStatus.SelectedIndex!=-1 && ddlMsgStatus.SelectedValue!="" ){
            dv.RowFilter = string.Format("CurrentStatus='{0}' ", ddlMsgStatus.SelectedValue);
        }
        DataTable dt2 = dv.ToTable();

        BaseMainPager.RecordCount = dt2.Rows.Count;
        //gvInfos.DataSource = ZPager.TablePage(dt2, BaseMainPager.PageSize, BaseMainPager.CurrentPageIndex);
        gvInfos.DataSource = ZPager.TablePage(dt2, 100000, BaseMainPager.CurrentPageIndex);
        BaseMainPager.Visible = false;
        gvInfos.DataKeyNames = new string[] { "Equip_No" };//主键
        gvInfos.DataBind();
    }

    protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e)
    {

        if (ddlCity.SelectedValue != string.Empty)
        {
            //初始化区
            MdlistInfo _MdlistInfo = new MdlistInfo();
            _MdlistInfo.TranType = "GetDistrictByUser";
            _MdlistInfo.UID = ZASession.Account;
            _MdlistInfo.Type = ddlCity.SelectedValue;
            ZABinder.FillList(string.Empty, ddlDistrict, true, Mdlist.GetDataTableByModel(_MdlistInfo));
        }

    }

    protected virtual List<string> GetCheckedList2()
    {
        List<string> checkedList = new List<string>();

        for (int i = 0; i < BaseMainGrid.Rows.Count; i++)
        {
            if (BaseMainGrid.Rows[i].RowType == DataControlRowType.DataRow)
            {
                if (BaseMainGrid.Rows[i].FindControl("cbItem") != null)
                {
                    Control ck = BaseMainGrid.Rows[i].FindControl("cbItem");
                  
                    if (ck is CheckBox)
                    {
                        CheckBox cb = ck as CheckBox;
                        if (cb.Checked) {
                            Control hidID = BaseMainGrid.Rows[i].FindControl("hidID");
                            checkedList.Add((hidID as HiddenField).Value);
                        }
                           
                        //ForeachGridDataRow(cb.Checked, BaseMainGrid.Rows[i], i);
                    }
                }
            }
            ForeachGridRow(BaseMainGrid.Rows[i]);
        }
        return checkedList;
    }

    protected void btnSend_Click(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(txtMessage.Text.Trim()))
        {
            if (MdBadWords.GetBadWords(txtMessage.Text.Trim()) != string.Empty) {
                ClientScript.RegisterStartupScript(GetType(), "Success", "<script>alert('发送内容包含敏感词，请修改！');</script>");
                return;
            }

            List<string> checkedList = GetCheckedList2();
            if (checkedList != null && checkedList.Count > 0)
            {
                Msg_SentInfo msi = new Msg_SentInfo();
                msi.Msg_No = string.Format("HNXXFS_{0}", DateTime.Now.ToString("yyyyMMddHHmmss"));
                msi.Msg_Content = ddlTimes.SelectedValue + txtMessage.Text;
                msi.SendBy = ZASession.Account;
                msi.SendDate =DateTime.Now;
                Msg_Sent msg = new Msg_Sent();
                msg.Add(msi, "*");
                Equip_MsgSent ems = new COM.PreAlarm.BLL.Equip_MsgSent();
                foreach (string s in checkedList)
                {
                    Equip_MsgSentInfo emsi = new COM.PreAlarm.Model.Equip_MsgSentInfo();
                    emsi.SetIsNew(true);
                    emsi.Equip_No = s;
                    emsi.Msg_No = msi.Msg_No;
                    emsi.Msg_SendTime = StringHelper.FormatStringToDate(txtSendDate.Value);
                    emsi.Msg_RecStatus = 0;
                    ems.Add(emsi, "*");

                }
                ClientScript.RegisterStartupScript(GetType(), "Success", "<script>alert('发送成功！');</script>");
                //ems.Add(
            }
            else
            {
                ClientScript.RegisterStartupScript(GetType(), "Error", "<script>alert('请选择要发送的设备！');</script>");
            }
        }
        else
        {
            ClientScript.RegisterStartupScript(GetType(), "Error", "<script>alert('请录入要发送的信息！');</script>");
            txtMessage.Focus();
        }

    }


    protected string GetTextByValue(string Value, string type)
    {
        return Mdlist.GetTextByValue(Value, type);
    }

	#endregion 	重写方法
}